package com.ushine.design.design.a_creative_mode.a_simple_factory.b_example;

/**
 * Product（抽象工厂接口，充当抽象产品类）
 *
 * @author yls
 */
public interface Chart {
    /**
     * 功能描述:
     * 〈 具体业务方法 〉
     *
     * @return : void
     * @author : yls
     * @date : 2022/3/9 9:15
     */
    void display();

    /**
     * 功能描述:
     * 〈 抽象产品类可以和工厂类合并〉
     *
     * @param type 类型
     * @return : com.ushine.web.design.a_creative_mode.a_simple_factory.b_example.Chart
     * @author : yls
     * @date : 2022/3/9 9:14
     */
    static Chart getChart(String type) {
        Chart chart = null;
        if (ChartConstant.HISTOGRAM_CHART.equalsIgnoreCase(type)) {
            chart = new HistogramChart();
            System.out.println("初始化设置柱状图。");
        } else if (ChartConstant.PIE_CHART.equalsIgnoreCase(type)) {
            chart = new PieChart();
            System.out.println("初始化设置饼状图。");
        } else if (ChartConstant.LINE_CHART.equalsIgnoreCase(type)) {
            chart = new LineChart();
            System.out.println("初始化设置折线图。");
        }
        return chart;
    }
}
